iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
Mobile Development

Android Studio 學習交流系列 第 8

[Day08]Android學習-元件介紹-Text系列(2)

  • 分享至 

  • xImage
  •  

接續上一篇文章,這篇要繼續討論Text系列後半段的內容,以下粗體字為這篇實作需要使用的元件,大家準備好閱讀Text系列(2)了嗎,好了~我們出發吧~

顯示Text

向使用者呈現文字:

  1. TextView:用於顯示文字,可將開發者欲呈現的文字放入其元件
  2. CheckedTextView:顯示文字又含有checkbox的功能

輸入Text

提供使用者輸入的元件,分為以下不同的輸入類型:

  1. Plain Text:輸入一般文字 例如:姓名(中、英文)
  2. Password:提供輸入密碼
  3. Password:(Numeric)提供輸入密碼(數字形式)
  4. E-mail:提供電子郵件輸入形式
  5. Phone:提供電話號碼輸入形式
  6. Postal Address:提供郵政地址輸入形式
  7. Multiline Text:輸入文字超出範圍可以多行顯示
  8. Time:提供時間輸入形式
  9. Date:提供日期輸入形式
  10. Number:輸入數字
  11. Number(Signed):輸入數字(支援正負號輸入)
  12. Number(Decimal):輸入數字(限於"."的使用僅限一次)
  13. AutoCompleteTextView:輸入時提供使用者提示輸入選項
  14. MultiAutoCompleteTextView:輸入時提供使用者提示輸入選項(可以多值輸入)
  15. TextInputLayout:輸入提示不因輸入而消失

以下會實作顯示Text第2項和輸入Text第11~15項

下圖為最終呈現畫面

以下是完整的程式碼

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">



    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >


        <TextView
            android:id="@+id/tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Text系列元件"
            android:textSize="20dp"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="輸入姓名"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPassword"
            android:hint="輸入密碼"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="numberPassword"
            android:hint="輸入密碼(數字)"
            android:layout_marginTop="5dp"
            />
        <EditText
            android:id="@+id/edt4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textEmailAddress"
            android:hint="輸入電子郵件"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="phone"
            android:hint="輸入電話號碼"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt6"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPostalAddress"
            android:hint="輸入郵政地址"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt7"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:gravity="start|top"
            android:inputType="textMultiLine"
            android:hint="多行輸入"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="time"
            android:hint="輸入時間"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt9"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="date"
            android:hint="輸入日期"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt10"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="number"
            android:hint="輸入數字"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt11"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="輸入數字(正負號輸入)"
            android:inputType="numberSigned"
            android:layout_marginTop="5dp"
            />

        <EditText
            android:id="@+id/edt12"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="numberDecimal"
            android:hint="輸入數字(提供一次點'.')"
            android:layout_marginTop="5dp"
            />

            <!--completionThreshold符合字元幾個將給予提示-->
            <AutoCompleteTextView
                android:id="@+id/autotv1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="我是AutoCompleteTextView,我會提示選項"
                android:completionThreshold="1"
                android:layout_marginTop="5dp"/>

            <MultiAutoCompleteTextView
                android:id="@+id/autotv2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="我是MultiAutoCompleteTextView,我會提示選項"
                android:completionThreshold="1"
                android:layout_marginTop="5dp"/>

            <!--checked預設是否打勾-->
            <CheckedTextView
                android:id="@+id/chktv"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="我是CheckedTextView"
                android:textSize="20dp"
                android:checked="false"
                android:checkMark="?android:attr/listChoiceIndicatorMultiple"
                android:layout_marginTop="5dp"/>

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/txtlayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp">

                <com.google.android.material.textfield.TextInputEditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="我是TextInputLayout裡的TextInputEditText" />
            </com.google.android.material.textfield.TextInputLayout>


            <!--Button-->
            <!--設定元件的識別編號-->
            <!--元件在版面的寬度為元件內容大小-->
            <!--元件在版面的高度為元件內容大小-->
            <!--距離間隔版面20sp-->
            <!--按鈕文字為Button-->
            <!--設定偵聽器-->
            <Button
            android:id="@+id/btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20sp"
            android:onClick="listener"
            android:text="送出"
            android:layout_marginTop="5dp"
            />

        </LinearLayout>
    </ScrollView>


</LinearLayout>
  • CheckedTextView=>
    android:checked="false"可預設是否打勾
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"這很重要,這攸關按鈕是否會出現

  • AutoCompleteTextView、MultiAutoCompleteTextView=>
    completionThreshold可以設定符合幾個字元將給予使用者選項提示

這次與上篇大家一樣可以參考一下各個輸入Text鍵盤允許輸入的資料型態為何

顯示Text

CheckedTextView:顯示文字又含有checkbox的功能

https://ithelp.ithome.com.tw/upload/images/20190924/20121149kCPzEWCsOw.png

輸入Text

Number(Signed):輸入數字(支援正負號輸入)

https://ithelp.ithome.com.tw/upload/images/20190924/201211492SnpgBChk5.png

Number(Decimal):輸入數字(限於"."的使用僅限一次)

https://ithelp.ithome.com.tw/upload/images/20190924/2012114983z58Wcdjb.png

AutoCompleteTextView:輸入時提供使用者提示輸入選項

https://ithelp.ithome.com.tw/upload/images/20190924/20121149lTv8zqrH1d.png

MultiAutoCompleteTextView:輸入時提供使用者提示輸入選項(可以多值輸入)

https://ithelp.ithome.com.tw/upload/images/20190924/20121149OzuadPjVDI.png

TextInputLayout:輸入提示不因輸入而消失

輸入前:
https://ithelp.ithome.com.tw/upload/images/20190924/20121149POidJ6K8Fr.png
輸入時:
https://ithelp.ithome.com.tw/upload/images/20190924/20121149WD7u1a2iwA.png

有甚麼疑問歡迎打家下方留言討論喔~

/images/emoticon/emoticon37.gif

Thank you for your time.

[Day07]Android學習-元件介紹-Text系列(1)


上一篇
[Day07]Android學習-元件介紹-Text系列(1)
下一篇
[Day09]Android學習-元件介紹-Text系列(3)
系列文
Android Studio 學習交流30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言